<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="FileSystem" targetNamespace="http://gov.dc.octo.egov.portal/FileSystem.xsd" elementFormDefault="qualified" xmlns="http://gov.dc.octo.egov.portal/FileSystem.xsd" xmlns:mstns="http://gov.dc.octo.egov.portal/FileSystem.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:NameSpace1="http://weblogs.asp.net/cazzu">
  <xs:annotation>
    <xs:appinfo>
      <Code xmlns="http://weblogs.asp.net/cazzu">
        <Extension Type="XsdGenerator.Extensions.ArraysToCollectionsExtension, XsdGenerator.Library" />
        <Extension Type="XsdGenerator.Extensions.FieldsToPropertiesExtension, XsdGenerator.Library" />
        <Extension Type="XsdGenerator.Extensions.SchemaConstantsExtension, XsdGenerator.Library" />
      </Code>
    </xs:appinfo>
  </xs:annotation>
  <xs:element name="Directory">
    <xs:annotation>
      <xs:documentation>
				Directory specification
			</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="Directory" />
        <xs:element ref="File" />
      </xs:choice>
      <xs:attribute name="Id" type="xs:string" use="required">
        <xs:annotation>
          <xs:documentation>This value is the unique identifier of the directory entry.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Name" type="xs:string" use="required">
        <xs:annotation>
          <xs:documentation>File name of the file in 8.3 format, required for backwards compatibility.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="LongName" type="xs:string">
        <xs:annotation>
          <xs:documentation>Long file name; set this attribute if preferred name is not in 8.3 format.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="src" type="xs:string">
        <xs:annotation>
          <xs:documentation>Used to set the file system source for this directory's child elements.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="File">
    <xs:annotation>
      <xs:documentation>
				File specification
			</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <!-- 'Attributes' column integer value generated from XML attributes below -->
      <!-- assembly information -->
      <xs:all>
        <xs:annotation>
          <xs:documentation>
					Extensibility point in the WiX XML Schema.  Schema extensions can register additional
					attributes at this point in the schema.
				</xs:documentation>
        </xs:annotation>
      </xs:all>
      <xs:attribute name="Id" type="xs:string" use="required">
        <xs:annotation>
          <xs:documentation>This value is the unique identifier of the directory entry.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Name" type="ShortFileNameType" use="required">
        <xs:annotation>
          <xs:documentation>File name of the file in 8.3 format, required for backwards compatibility.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="LongName" type="LongFileNameType">
        <xs:annotation>
          <xs:documentation>Long file name; set this attribute if preferred name is not in 8.3 format.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="ReadOnly" type="YesNoType">
        <xs:annotation>
          <xs:documentation>Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Hidden" type="YesNoType">
        <xs:annotation>
          <xs:documentation>Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="System" type="YesNoType">
        <xs:annotation>
          <xs:documentation>Set to yes in order to have the file's system attribute set when it is installed on the target machine.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Vital" type="YesNoType">
        <xs:annotation>
          <xs:documentation>If a file is vital, then installation cannot proceed unless the file is successfully installed.  The user will have no option to ignore an error installing this file.  If an error occurs, they can merely retry to install the file or abort the installation.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Checksum" type="YesNoType">
        <xs:annotation>
          <xs:documentation>This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header.  Only those files that have this attribute set will be verified for valid checksum during a reinstall.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="SelfRegCost" type="xs:integer">
        <xs:annotation>
          <xs:documentation>generates SelfReg table row</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Assembly">
        <xs:annotation>
          <xs:documentation>
						Specifies if this File is a Win32 Assembly or .NET Assembly; the default is neither.
						If the value is '.net' or 'win32', this file must also be the key path of the Component.
					</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value=".net" />
            <xs:enumeration value="no" />
            <xs:enumeration value="win32" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="ProcessorArchitecture">
        <xs:annotation>
          <xs:documentation>Specifies the architecture for this assembly. This attribute should only be used on .NET Assemblies for the CLR 2.0.</xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="msil" />
            <xs:enumeration value="x86" />
            <xs:enumeration value="x64" />
            <xs:enumeration value="ia64" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="NeverOverwrite" type="YesNoType" />
      <xs:attribute name="Permanent" type="YesNoType" />
      <xs:attribute name="Installer" type="YesNoType" />
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="YesNoType">
    <xs:annotation>
      <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="no" />
      <xs:enumeration value="yes" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="YesNoDefaultType">
    <xs:annotation>
      <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:NMTOKEN">
      <xs:enumeration value="default" />
      <xs:enumeration value="no" />
      <xs:enumeration value="yes" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ShortFileNameType">
    <xs:annotation>
      <xs:documentation>Values of this type will look like: "FileName.ext".  The following characters are not allowed: \ ? | &gt; : / * " + , ; = [ ] less-than, or whitespace.  The name cannot be longer than 8 characters and the extension cannot exceed 3 characters.  The value could also be a localization variable with the format $(loc.VARIABLE).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\] ]{1,8}(\.[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\] ]{0,3})?|\$\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LongFileNameType">
    <xs:annotation>
      <xs:documentation>Values of this type will look like: "Long File Name.extension".  The following characters are not allowed: \ ? | &gt; : / * " or less-than.  The name must be shorter than 260 characters.  The value could also be a localization variable with the format $(loc.VARIABLE).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;]{1,259}|\$\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)" />
    </xs:restriction>
  </xs:simpleType>
</xs:schema>